Current engines have electronic fuel injection systems and frequently electronic ignition systems which are controlled by an engine control module. The engine control module also monitors data generated for many aspects of the engine performance such as exhaust gas emissions. This data regulates the signals which are provided by the engine control module to control the electronic fuel injection and the electronic ignition systems. Thus, for the engine to run properly the engine control module may need signals from the exhaust gas emissions based on which it can adjust the engine's operation. The engine control module may also monitor other characteristics of the environment, such as temperature and barometric pressure, that effect the performance of the engine. The engine control module may also have embedded in it base line values needed for the operation of the engine. Thus if the engine control module or engine sensors are not functioning properly the engine may malfunction and, in some cases, will not function at all.
With today's complex engine control strategies tailored to maximize engine efficiencies and minimize environmental impact, the engine control module can be very complex. Some of the problems associated with the complexity of engine control modules can be overcome by providing dual processor units which can segment the control functions so that simpler processors can be used. These dual processors are programmed to provide redundancy so that if one processor fails, critical functions can be shifted to its companion processor and the engine will continue to operate. U.S. Pat. Nos. 5,267,542 and 5,233,964 are two patents which teach the use of dual processors for an engine control module.
While such a dual processor engine control module will increase reliability of the engine control module, to date, there has been no engine control module where multiple processors share information and interact with each other in a manner which will allow one processor to take control of the functions of a second processor while maintaining the second processor in its current active state. Furthermore, no processors are currently available which can switch control back and forth between two processors without disruption to the engine or to either processor. Lastly, no engine control module to date can be programmed by the user to provide a user control mode providing test patterns for operating the engine and thereafter return the operation of the engine to run in its normal mode. Thus there is a need for a processor which can be used as an engine management system which will allow an engine to be tested while benefiting from the information maintained in the engine control module.